# 1、导入模块
import socket

# 2、创建套接字
#                   IPv4                 UDP
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 3、设置广播权限(套接字默认不允许发送广播，需要开启相关权限)
# PermissionError: [Errno 13] Permission denied
# udp_socket.setsockopt(套接字,属性,属性值)
# socket.SOL_SOCKET 当前的套接字
# socket.SO_BROADCAST 广播属性
udp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, True)

# 2）绑定端口
# address ---> ("ip地址", 端口号) 端口号范围：0-65535
udp_socket.bind(("192.168.56.1", 8088))

# 4、发送数据
udp_socket.sendto("发送消息~".encode(), ("192.168.56.1", 8080))

# 5、每次接收1024个字节 会造成程序阻塞 等待接收发来的数据
recv_data = udp_socket.recvfrom(1024)
# 收到的数据是个元组
result = recv_data[0].decode("GBK")

print("接收来自：", recv_data[1], "消息：", result)
# 6、关闭套接字
udp_socket.close()
